In multi-core processing environments, virtualized services may be provided where a virtual machine running on one core is hosted by a hypervisor that is running on a different core. In such a situation, the operation of the virtual machine is typically interrupted if a certain event requires interaction with the hypervisor (e.g., when the hypervisor attempts to inject an interrupt into the operation of the virtual machine, or when the virtual machine performs a privileged instruction which the hypervisor needs to emulate).
The above-noted interruption prevents the hypervisor from taking advantage of idle processing time splits across different cores, slows down the operation of the virtual machine, causes additional context switches between the hypervisor and the virtual machine and creates a significant latency from the time an event is created until it is injected to the virtual machine.